package com.cencat.route.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 商户查询条件VO
 * 
 * @author cencat
 * @version 1.0
 * @since 2024-01-01
 */
@Data
@Schema(description = "商户查询条件")
public class MerchantQueryVO {

    @Schema(description = "商户名称")
    private String merchantName;

    @Schema(description = "商户编码")
    private String merchantCode;

    @Schema(description = "商户类型")
    private String merchantType;

    @Schema(description = "商户状态")
    private String merchantStatus;

    @Schema(description = "认证状态")
    private String verificationStatus;

    @Schema(description = "信用等级")
    private String creditLevel;

    @Schema(description = "联系人")
    private String contactPerson;

    @Schema(description = "联系电话")
    private String contactPhone;

    @Schema(description = "联系邮箱")
    private String contactEmail;

    @Schema(description = "商户地址")
    private String merchantAddress;

    @Schema(description = "统一社会信用代码")
    private String socialCreditCode;

    @Schema(description = "营业执照号")
    private String businessLicenseNumber;

    @Schema(description = "最小信用分数")
    private BigDecimal minCreditScore;

    @Schema(description = "最大信用分数")
    private BigDecimal maxCreditScore;

    @Schema(description = "注册时间-开始")
    private LocalDateTime registrationTimeBegin;

    @Schema(description = "注册时间-结束")
    private LocalDateTime registrationTimeEnd;

    @Schema(description = "认证时间-开始")
    private LocalDateTime verificationTimeBegin;

    @Schema(description = "认证时间-结束")
    private LocalDateTime verificationTimeEnd;

    @Schema(description = "创建开始时间")
    private LocalDateTime createStartTime;

    @Schema(description = "创建结束时间")
    private LocalDateTime createEndTime;

    @Schema(description = "更新开始时间")
    private LocalDateTime updateStartTime;

    @Schema(description = "更新结束时间")
    private LocalDateTime updateEndTime;

    @Schema(description = "创建人ID")
    private Long createdBy;

    @Schema(description = "更新人ID")
    private Long updatedBy;

    @Schema(description = "是否删除")
    private Boolean deleted;

    @Schema(description = "关键字搜索（商户名称、编码、联系人、联系电话）")
    private String keyword;

    @Schema(description = "排序字段")
    private String sortField;

    @Schema(description = "排序方向（ASC/DESC）")
    private String sortOrder;

}